package team.chess.qieces;

import java.awt.*;

/**
 * 马类
 *
 */
public class Horse extends Qiece{

    public Horse(Qiece a,int index,int c){

        if (index == 0){
            this.kind = 5;
            this.x = a.x;
            this.y = a.y;
            this.controller = c;
            this.moveof = 0;
        }else if (index == 1){
            this.kind = a.kind;
            this.controller = a.controller;
        }
        this.scl = 0;
    }

    @Override
    public void paintSelf(Graphics g) {
        if(this.controller == 0 && this.kind !=0){           //为黑子时
            g.drawImage(horses_b,x,y,null);
        } else if(this.controller == 1 && this.kind !=0){    //为红子时
            g.drawImage(horses_r,x,y,null);
        }
        if(this.moveof == 1){
            g.drawImage(point,x+10,y+10,null);
        }
    }

    @Override
    public void movingRange(Qiece[] qieces, int row, int col) {
        switch (row){
            case 0:if(col==0){
                if(qieces[row*9+col+1].getKind()==0)
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                if(qieces[row*9+col+9].getKind()==0)
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
            }
            else if(col==1) {
                if (qieces[row*9+col+1].getKind() == 0) {
                    if (qieces[row * 9 + col + 11].getKind() == 0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row * 9 + col + 11].setMoveof(1);
                }
                if( qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
            }
            else if(col==7){
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
            }
            else if(col==8){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }

                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }

            }
            else{
                if(qieces[row*9+col-1].getKind()==0)
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                if(qieces[row*9+col+1].getKind()==0)
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
            }
                break;
            case 1:if(col==0){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
            }
            else if(col==1){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
            }
            else if(col==7){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
            }
            else if(col==8){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
            }
            else{
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                }
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
            }
                break;
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:if(col==0){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
            }
            else if(col==1){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
            }
            else if(col==7){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
            }
            else if(col==8){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                }
            }
            else{
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                }
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col+17].getKind()==0||qieces[row*9+col+17].getController()!=this.getController())
                        qieces[row*9+col+17].setMoveof(1);
                    if(qieces[row*9+col+19].getKind()==0||qieces[row*9+col+19].getController()!=this.getController())
                        qieces[row*9+col+19].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
            }
                break;
            case 8:if(col==0){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
            }
            else if(col==1){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col+9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
            }
            else if(col==7){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
            }
            else if(col==8){
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
            }
            else{
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col+7].getKind()==0||qieces[row*9+col+7].getController()!=this.getController())
                        qieces[row*9+col+7].setMoveof(1);
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                }
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                    if(qieces[row*9+col+11].getKind()==0||qieces[row*9+col+11].getController()!=this.getController())
                        qieces[row*9+col+11].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
            }
                break;
            case 9:if(col==0){
                if(qieces[row*9+col+1].getKind()==0)
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                if(qieces[row*9+col-9].getKind()==0)
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
            }
            else if(col==1){
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                }
                if(qieces[row*9+col-19].getKind()==0){
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
            }
            else if(col==7){
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                }
            }
            else if(col==8){
                if(qieces[row*9+col-1].getKind()==0)
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                if(qieces[row*9+col-9].getKind()==0)
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
            }
            else{
                if(qieces[row*9+col-1].getKind()==0){
                    if(qieces[row*9+col-11].getKind()==0||qieces[row*9+col-11].getController()!=this.getController())
                        qieces[row*9+col-11].setMoveof(1);
                }
                if(qieces[row*9+col+1].getKind()==0){
                    if(qieces[row*9+col-7].getKind()==0||qieces[row*9+col-7].getController()!=this.getController())
                        qieces[row*9+col-7].setMoveof(1);
                }
                if(qieces[row*9+col-9].getKind()==0){
                    if(qieces[row*9+col-17].getKind()==0||qieces[row*9+col-17].getController()!=this.getController())
                        qieces[row*9+col-17].setMoveof(1);
                    if(qieces[row*9+col-19].getKind()==0||qieces[row*9+col-19].getController()!=this.getController())
                        qieces[row*9+col-19].setMoveof(1);
                }
            }
                break;
        }

    }
}
